"""
    xfree.utils.exceptions
    ~~~~~~~~~~~~~~~~~~~~~
    文件描述：这个模块定义了由 XFree 实现的异常。
    作者：xfree
    邮箱：cy_83k@qq.com
"""
from werkzeug.exceptions import Forbidden, HTTPException

from xfree.core.exceptions import BaseXFreeError


class XFreeHTTPError(BaseXFreeError, HTTPException):
    """
    XFree 的 HTTP 错误基类。

    描述：“An internal error has occured”（发生了一个内部错误）。
    """
    description = "An internal error has occured"


XFreeError = XFreeHTTPError


class AuthorizationRequired(XFreeError, Forbidden):
    """
    当访问某个区域需要授权时抛出的异常。

    描述：“Authorization is required to access this area.”（访问此区域需要授权。）
    """
    description = "Authorization is required to access this area."


class AuthenticationError(XFreeError):
    """
    当用户名和密码组合无效时抛出的异常。

    描述：“Invalid username and password combination.”（用户名和密码组合无效。）
    """
    description = "Invalid username and password combination."